package com.panlf.Thread基础;

import java.util.concurrent.TimeUnit;

/**
 * @author panlf
 * @since 2024/1/10 10:01
 */
public class Thread常用方法 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

        // 让线程进入就绪状态, 要等分到cpu的时间片时才真正执行
        thread.start();

        // 只是简单的运行一下 run方法, 不会创建新的线程
        thread.run();

        // main 线程等待 thread执行完成
        thread.join();

        // 线程被cpu调度的优先级
        thread.setPriority(1);
        thread.getPriority();

        // 线程状态 6种
        thread.getState();

        // 是否被打断
        boolean interrupted = thread.isInterrupted();

        // 判断线程是否存活(运行完的线程会死亡)
        boolean alive = thread.isAlive();

        // 获取当前线程
        Thread.currentThread();

        // 提示程序调度器, 我要让出cpu
        Thread.yield();

        // 线程休眠
        Thread.sleep(1000);
        TimeUnit.SECONDS.sleep(1); // 效果等同
    }
}
